package com.pur.zsms.quotation.dao;

import java.util.List;

import com.pur.zsms.common.exception.GenericException;
import com.pur.zsms.common.support.PageController;
import com.pur.zsms.common.support.PaginationSupport;
import com.pur.zsms.company.po.CompanyPo;
import com.pur.zsms.quotation.po.QuotationCompanyPeriodPo;
import com.pur.zsms.quotation.po.QuotationCompanyPeriodSubPo;
import com.pur.zsms.quotation.po.QuotationPo;
import com.pur.zsms.quotation.po.QuotationSubPo;
import com.pur.zsms.quotation.vo.QuotationCompanyPeriodSubVo;
import com.pur.zsms.quotation.vo.QuotationCompanyPeriodVo;
import com.pur.zsms.quotation.vo.QuotationVo;

public interface IQuotationDao {

	public boolean checkName(String name, long supId) throws GenericException;

	public void addQuotation(QuotationPo c) throws GenericException;

	public void saveQuotationSub(QuotationSubPo c) throws GenericException;

	public void deleteQuotation(long quotationId) throws GenericException;

	public PaginationSupport listQuotation(PageController pageController, QuotationVo quotationVo) throws GenericException;

	public List<QuotationPo> findQuotationPo(long supId);

	public PaginationSupport companyPeriodList(PageController pageController, QuotationCompanyPeriodVo tQuotationCompanyPeriodVo)
			throws GenericException;

	public PaginationSupport detailRaisePricePeriod(PageController pageController, QuotationCompanyPeriodVo tQuotationCompanyPeriodVo)
			throws GenericException;

	public void addQuotationCompanyPeriodPo(QuotationCompanyPeriodPo c) throws GenericException;

	public void updateQuotationCompanyPeriodPo(QuotationCompanyPeriodPo c) throws GenericException;

	public void deleteCompanyPeriod(long quotationId) throws GenericException;

	public void addQuotationCompanyPeriodSubPo(QuotationCompanyPeriodSubPo c) throws GenericException;

	public void updateQuotationCompanyPeriodSubPo(QuotationCompanyPeriodSubPo c) throws GenericException;

	public List<CompanyPo> getCompanyPo() throws GenericException;

	public List<CompanyPo> getCompanyPoBySupId(long supId) throws GenericException;

	public List<QuotationCompanyPeriodPo> getQuotationCompanyPeriodPoBySupIdAndCompanyId(int supId, int companyId) throws GenericException;

	public List<QuotationCompanyPeriodPo> getQuotationCompanyPeriodPo(QuotationCompanyPeriodVo vo) throws GenericException;

	public List<QuotationCompanyPeriodPo> getQuotationCompanyPeriodPoByQuotationId(long quotationId) throws GenericException;

	public List<Object[]> getCompanyPeriodForExcel(long quotationId) throws GenericException;

	public List<Object[]> getCompanyPeriodValue(int materId, int supId, long companyId) throws GenericException;

	public List<QuotationCompanyPeriodSubPo> getQuotationCompanyPeriodSubPo(QuotationCompanyPeriodSubVo vo) throws GenericException;

}
